Field of the Invention
The present invention relates in general to the field of information handling system input devices, and more particularly to an information handling system pointing virtualized pointing device support.
Description of the Related Art
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems often accept end user inputs as touches made through a pointing device and presented on a display. Conventional pointing devices include a mouse, which translates movement detected at the mouse to movement of a cursor on a screen, and a touchpad, which translates movement on a touch sensitive surface into movement of a cursor on a screen. Both the mouse and the touchscreen typically have input buttons to accept end user inputs, such as left and right touch buttons, although a touchpad will also often indicate inputs with a tap made at the touch sensitive surface. The widespread adoption of touchscreen liquid crystal displays (LCD) has introduced another type of pointing device in which end users make touch inputs directly over displayed visual information. For example, tablet information handling systems are built into a planar housing without a physical keyboard so that a touchscreen acts as both a keyboard and a touchpad. Generally mobile devices have an integrated keyboard matrix to accept inputs from touchscreens and integrated keyboards.
Support for pointing devices within embedded controllers and firmware dates back to the first Apple products with “mouse” support. Similar support was included in IBM compatible and Windows systems using PS2 standard inputs for X86 processors that remain in use largely unchanged in many systems today. An embedded controller interfaced with the pointing device accepts PS2 input/output (I/O) in an (X, Y, Button) format over the 0x60 and 0x64 industry standard I/O channels. Since the embedded controller typically executes the basic input/output system (BIOS) firmware, pointing device inputs will generally operate in pre-operating system environments, such as DOS, with factory tools, and during system setup. Further, the basic functionality defined by the PS2 standards ensures that non-Windows devices can adapt to pointing devices of different vendors in a convenient manner, such as Linux and Android devices.
One difficulty that has come up with conventional pointing devices is that end users expect touchpads to provide functionality similar to that of a touchscreen display. In particular, end users expect multi-finger gesture support that provides richer input alternatives, such as rotating content, inputting security codes, writing letters and/or symbols. Although a typical touchpad has adequate sensitivity to accept inputs with multi-finger gestures, the standard PS2 communication protocol will not transfer adequate data bandwidth to communicate multi-finger gestures to a processor through an embedded controller. Instead, “Precision Touch Pad” requirements have been introduced to provide greater data transfer rates between the touchpad and CPU. To provide the necessary bandwidth to support gestures, manufacturers typically have to interface the touchpad to the CPU chipset through an I2C or USB serial link and let the operating system handle the more complex gesture inputs. Unfortunately, PS2 hardware and GPIO typically have to remain in the embedded controller to support legacy PS2 software stacks for managing inputs when the operating system is not active. Including I2C gesture support within an embedded controller for legacy pointing device functions would add significant complexity to the system.